package top.zywork.query;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.Date;

/**
 * GoodsCouponQuery查询对象类<br/>
 *
 * 创建于2019-08-02<br/>
 *
 * @author http://zywork.top 危锦辉
 * @version 1.0
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
public class GoodsCouponQuery extends PageQuery {

    private static final long serialVersionUID = -9223372035226488649L;

    /**
	 * 优惠券编号
	 */
	private Long id;
	/**
	 * 优惠券编号(最小值)
	 */
	private Long idMin;
	/**
	 * 优惠券编号(最大值)
	 */
	private Long idMax;
	/**
	 * 商品类目编号
	 */
	private Long categoryId;
	/**
	 * 商品类目编号(最小值)
	 */
	private Long categoryIdMin;
	/**
	 * 商品类目编号(最大值)
	 */
	private Long categoryIdMax;
	/**
	 * 店铺编号
	 */
	private Long shopId;
	/**
	 * 店铺编号(最小值)
	 */
	private Long shopIdMin;
	/**
	 * 店铺编号(最大值)
	 */
	private Long shopIdMax;
	/**
	 * 商品编号
	 */
	private Long goodsId;
	/**
	 * 商品编号(最小值)
	 */
	private Long goodsIdMin;
	/**
	 * 商品编号(最大值)
	 */
	private Long goodsIdMax;
	/**
	 * 商品SKU编号
	 */
	private Long goodsSkuId;
	/**
	 * 商品SKU编号(最小值)
	 */
	private Long goodsSkuIdMin;
	/**
	 * 商品SKU编号(最大值)
	 */
	private Long goodsSkuIdMax;
	/**
	 * 优惠券标题
	 */
	private String title;
	/**
	 * 最小消费金额（元）
	 */
	private BigDecimal useMinAmount;
	/**
	 * 最小消费金额（元）(最小值)
	 */
	private BigDecimal useMinAmountMin;
	/**
	 * 最小消费金额（元）(最大值)
	 */
	private BigDecimal useMinAmountMax;
	/**
	 * 满减优惠金额（元）
	 */
	private BigDecimal discountAmount;
	/**
	 * 满减优惠金额（元）(最小值)
	 */
	private BigDecimal discountAmountMin;
	/**
	 * 满减优惠金额（元）(最大值)
	 */
	private BigDecimal discountAmountMax;
	/**
	 * 满减折扣
	 */
	private Double discountPercent;
	/**
	 * 满减折扣(最小值)
	 */
	private Double discountPercentMin;
	/**
	 * 满减折扣(最大值)
	 */
	private Double discountPercentMax;
	/**
	 * 赠送积分
	 */
	private Integer integralAmount;
	/**
	 * 赠送积分(最小值)
	 */
	private Integer integralAmountMin;
	/**
	 * 赠送积分(最大值)
	 */
	private Integer integralAmountMax;
	/**
	 * 优惠券总量
	 */
	private Integer totalCount;
	/**
	 * 优惠券总量(最小值)
	 */
	private Integer totalCountMin;
	/**
	 * 优惠券总量(最大值)
	 */
	private Integer totalCountMax;
	/**
	 * 优惠券使用范围
	 */
	private Byte couponUsableRange;
	/**
	 * 优惠券使用范围(最小值)
	 */
	private Byte couponUsableRangeMin;
	/**
	 * 优惠券使用范围(最大值)
	 */
	private Byte couponUsableRangeMax;
	/**
	 * 优惠券类型
	 */
	private Byte couponType;
	/**
	 * 优惠券类型(最小值)
	 */
	private Byte couponTypeMin;
	/**
	 * 优惠券类型(最大值)
	 */
	private Byte couponTypeMax;
	/**
	 * 开始时间
	 */
	private Date startTime;
	/**
	 * 开始时间(最小值)
	 */
	private Date startTimeMin;
	/**
	 * 开始时间(最大值)
	 */
	private Date startTimeMax;
	/**
	 * 到期时间
	 */
	private Date dueTime;
	/**
	 * 到期时间(最小值)
	 */
	private Date dueTimeMin;
	/**
	 * 到期时间(最大值)
	 */
	private Date dueTimeMax;
	/**
	 * 有效时间
	 */
	private Integer validDays;
	/**
	 * 有效时间(最小值)
	 */
	private Integer validDaysMin;
	/**
	 * 有效时间(最大值)
	 */
	private Integer validDaysMax;
	/**
	 * 版本号
	 */
	private Integer version;
	/**
	 * 版本号(最小值)
	 */
	private Integer versionMin;
	/**
	 * 版本号(最大值)
	 */
	private Integer versionMax;
	/**
	 * 创建时间
	 */
	private Date createTime;
	/**
	 * 创建时间(最小值)
	 */
	private Date createTimeMin;
	/**
	 * 创建时间(最大值)
	 */
	private Date createTimeMax;
	/**
	 * 更新时间
	 */
	private Date updateTime;
	/**
	 * 更新时间(最小值)
	 */
	private Date updateTimeMin;
	/**
	 * 更新时间(最大值)
	 */
	private Date updateTimeMax;
	/**
	 * 是否激活
	 */
	private Byte isActive;
	/**
	 * 是否激活(最小值)
	 */
	private Byte isActiveMin;
	/**
	 * 是否激活(最大值)
	 */
	private Byte isActiveMax;
	
	/**
	 * 多个编(只用于单表，关联表不适用)
	 */
	private Long[] ids;
}
